package com.zjsru.plan2024.normal;

/**
 * 434. 字符串中的单词数
 * 这里的单词指的是连续的不是空格的字符。
 * @Author: cookLee
 * @Date: 2024-04-11
 */
public class CountSegments {

    /**
     * 主
     * 输入: "Hello, my name is John"
     * 输出: 5
     * 解释: 这里的单词是指连续的不是空格的字符，所以 "Hello," 算作 1 个单词。
     * @param args args
     */
    public static void main(String[] args) {
        CountSegments countSegments = new CountSegments();
        String s = ", , , ,        a, eaefa";
        System.out.println(countSegments.countSegments2(s));
    }

    /**
     * 计数段
     *
     * @param s s
     * @return int
     */
    public int countSegments(String s) {
        int ans = 0;
        for (int i = 0; i < s.length(); i++) {
            if (((i == 0) || s.charAt(i - 1) == ' ') && s.charAt(i) != ' ') {
                ans++;
            }
        }
        return ans;
    }

    /**
     * 计数segments2
     *
     * @param s s
     * @return int
     */
    public int countSegments2(String s) {
        String trimmed = s.trim();
        if (trimmed.equals("")) {
            return 0;
        }
        //不能用space空格，会导致单词分离不满足要求，使用正则表达式中\s匹配任何空白字符
        return trimmed.split("\\s+").length;
    }

}
